package com.atjyb.process.service;

import com.atjyb.model.process.Process;
import com.atjyb.vo.process.ApprovalVo;
import com.atjyb.vo.process.ProcessFormVo;
import com.atjyb.vo.process.ProcessQueryVo;
import com.atjyb.vo.process.ProcessVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import java.util.Map;


/**
 * <p>
 * 审批类型 服务类
 * </p>
 *
 * @author atjyb
 * @since 2023-07-31
 */
public interface OaProcessService extends IService<Process> {

    //审批管理列表
    IPage<ProcessVo> selectPage(Page<ProcessVo> pageParam, ProcessQueryVo processQueryVo);

    //部署流程方法
    void deployByZip(String deployPath);

    void startUp(ProcessFormVo processFormVo);

    /**
     * 查询待处理的任务列表
     * @param pageParam
     * @return
     */
    IPage<ProcessVo> findfindPending(Page<Process> pageParam);

    /**
     * 查看审批任务的详细信息
     * @param id processid
     * @return
     */
    Map<String, Object> show(Long id);

    /**
     * 审批
     * @param approvalVo
     */
    void approve(ApprovalVo approvalVo);

    /**
     * 查询已处理的任务信息
     * @param pageParam
     * @return
     */
    IPage<ProcessVo> findProcessed(Page<Process> pageParam);

    /**
     *
     * 查询已发起的流程任务信息
     * @param pageParam
     * @return
     */
    IPage<ProcessVo> findStarted(Page<ProcessVo> pageParam);
}
